(function)()
,可以看到就是用 2 組 ()
進行,第 1 個 ()
包覆 function
,可在第 2 個 ()
帶入參數function
內設定的變數不會影響全域function funa() {
let a = "a";
console.log(a);
}
// 沒有呼叫 funa() 不會執行
(function () {
let b = "b";
console.log(b);
})();
console.log("c");
console.log(b);
// b
// c
// Uncaught ReferenceError: b is not defined
設定變數
(function (name) {
console.log(`My name is ${name}`);
})('Barry'); // My name is Barry
賦予值給變數
let result = (function () {
let name = "Barry";
return name;
})();
console.log(result); // Barry
console.log(typeof result); // string
for 迴圈,間隔時間印出
// 秒數不 *i 會在秒數到後一次輸出全部
for(var i = 0; i < 5; i++){
setTimeout(function(){
console.log(i)}
,1000 * i)
}
// 5 5 5 5 5
for(var i = 0; i < 5; i++){
(function(num){
setTimeout(function(){
console.log(num)}
,1000 * i)
})(i)
}
// 0 1 2 3 4
for(let i = 0; i < 5; i++){
setTimeout(function(){
console.log(i)}
,1000 * i)
}
// 0 1 2 3 4
MDN IIFE
JavaScript基本功修練:Day22 - 回傳函式與立即函式(IIFE)
重新認識 JavaScript: Day 18 Callback Function 與 IIFE
立即函式 IIFE
Day20 立即呼叫的函式表示式(IIFE)
[筆記] 談談JavaScript中的IIFEs(Immediately Invoked Functions Expressions)
補充一下網路請求的資料